﻿using System;

namespace AMS.History.Entities
{
    internal class WoInfoRecord : BaseHistoryEntity
    {
        /// <summary>
        /// 重写Equals方法
        /// </summary>
        public override bool Equals(object obj)
        {
            if (ReferenceEquals(obj, this))
                return true;
            if (obj == null)
                return false;
            var sObj = obj as WoInfoRecord;
            return sObj != null && (sObj.HId == m_HId || (sObj.HBaseObjectId == m_HBaseObjectId && sObj.HVersionId == m_HVersionId));
        }

        /// <summary>
        /// 重写GetHashCode方法
        /// </summary>
        public override int GetHashCode()
        {
            int hash = 277;
            hash = 27 * hash * m_HId.GetHashCode();
            return hash;
        }


        protected string m_Code;
        /// <summary>
        /// 编号
        /// </summary>
        public virtual string Code
        {
            get { return m_Code; }
            set { m_Code = value; }
        }

        protected string m_Theme;
        /// <summary>
        /// 主题
        /// </summary>
        public virtual string Theme
        {
            get { return m_Theme; }
            set { m_Theme = value; }
        }

        protected string m_TypeName;
        /// <summary>
        /// 类型
        /// </summary>
        public virtual string TypeName
        {
            get { return m_TypeName; }
            set { m_TypeName = value; }
        }

        protected string m_State;
        /// <summary>
        /// 状态
        /// </summary>
        public virtual string State
        {
            get { return m_State; }
            set { m_State = value; }
        }

        protected DateTime m_CreateDate;
        /// <summary>
        /// 创建日期
        /// </summary>
        public virtual DateTime CreateDate
        {
            get { return m_CreateDate; }
            set { m_CreateDate = value; }
        }

        protected DateTime m_CloseDate;
        /// <summary>
        /// 闭单日期
        /// </summary>
        public virtual DateTime CloseDate
        {
            get { return m_CloseDate; }
            set { m_CloseDate = value; }
        }

        protected DateTime m_ExpectedFixDate;
        /// <summary>
        /// 预计处理完成时间（精准的日期，预期值）
        /// 资产领用：领用日期
        /// 资产维护：申请日期
        /// 资产借用：归还日期
        /// 资产返还：归还日期
        /// 资产退仓：退仓日期
        /// 资产调拨：调拨日期
        /// </summary>
        public virtual DateTime ExpectedFixDate
        {
            get { return m_ExpectedFixDate; }
            set { m_ExpectedFixDate = value; }
        }

        protected Guid m_SenderId;
        /// <summary>
        /// 派单人
        /// </summary>
        public virtual Guid SenderId
        {
            get { return m_SenderId; }
            set { m_SenderId = value; }
        }

        protected Guid m_TargetUserId;
        /// <summary>
        /// 目标使用人
        /// 资产领用：领用人
        /// 资产维护：申请人
        /// 资产借用：空
        /// 资产返还：归还人
        /// 资产退仓：退仓人
        /// 资产调拨：调拨日期
        /// 资产停启用：空
        /// 资产报废：申报人
        /// 资产损毁：申请人
        /// </summary>
        public virtual Guid TargetUserId
        {
            get { return m_TargetUserId; }
            set { m_TargetUserId = value; }
        }

        protected Guid m_TargetUserGroupId;
        /// <summary>
        /// 目标用户组
        /// 资产领用：领用部门
        /// 资产维护：申请部门
        /// 资产借用：借入部门
        /// 资产返还：归还部门
        /// 资产退仓：退仓部门
        /// 资产调拨：调入部门
        /// 资产停启用：空
        /// 资产报废：申报人
        /// 资产损毁：申请人
        /// </summary>
        public virtual Guid TargetUserGroupId
        {
            get { return m_TargetUserGroupId; }
            set { m_TargetUserGroupId = value; }
        }

        protected Guid m_OrgUserGroupId;
        /// <summary>
        /// 原属用户组
        /// 资产领用：领用部门
        /// 资产维护：申请部门
        /// 资产借用：借入部门
        /// 资产返还：归还部门
        /// 资产退仓：退仓部门
        /// 资产调拨：调出部门
        /// 资产停启用：空
        /// 资产报废：申报部门
        /// 资产损毁：申请部门
        /// </summary>
        public virtual Guid OrgUserGroupId
        {
            get { return m_OrgUserGroupId; }
            set { m_OrgUserGroupId = value; }
        }

        protected string m_ExMemo1;
        /// <summary>
        /// 扩展字段备注1
        /// 资产领用：空
        /// 资产维护：维修内容
        /// 资产借用：空
        /// 资产返还：借出时状况
        /// 资产退仓：退仓原因
        /// 资产调拨：
        /// 资产停启用：停启用原因
        /// 资产报废：报废原因
        /// 资产损毁：损毁原因
        /// </summary>
        public virtual string ExMemo1
        {
            get { return m_ExMemo1; }
            set { m_ExMemo1 = value; }
        }

        protected string m_ExMemo2;
        /// <summary>
        /// 扩展字段备注2
        /// 资产领用：空
        /// 资产维护：维修保质期
        /// 资产借用：空
        /// 资产返还：归还时状况
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：
        /// 资产报废：报废内容
        /// 资产损毁：损毁内容
        /// </summary>
        public virtual string ExMemo2
        {
            get { return m_ExMemo2; }
            set { m_ExMemo2 = value; }
        }

        protected string m_ExMemo3;
        /// <summary>
        /// 扩展字段备注2
        /// 资产领用：
        /// 资产维护：
        /// 资产借用：
        /// 资产返还：
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：
        /// 资产报废：使用部门意见
        /// 资产损毁：使用冲凉意见
        /// </summary>
        public virtual string ExMemo3
        {
            get { return m_ExMemo3; }
            set { m_ExMemo3 = value; }
        }

        protected string m_ExMemo4;
        /// <summary>
        /// 扩展字段备注2
        /// 资产领用：
        /// 资产维护：
        /// 资产借用：
        /// 资产返还：
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：
        /// 资产报废：
        /// 资产损毁：鉴定意见
        /// </summary>
        public virtual string ExMemo4
        {
            get { return m_ExMemo4; }
            set { m_ExMemo4 = value; }
        }


        protected DateTime m_ExDate1;
        /// <summary>
        /// 扩展字段日期1
        /// 资产领用：空
        /// 资产维护：维修日期
        /// 资产借用：
        /// 资产返还：
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：
        /// 资产报废：
        /// 资产损毁：
        /// </summary>
        public virtual DateTime ExDate1
        {
            get { return m_ExDate1; }
            set { m_ExDate1 = value; }
        }

        protected string m_ExUserName1;
        /// <summary>
        /// 扩展字段用户1
        /// 资产领用：
        /// 资产维护：验收人
        /// 资产借用：
        /// 资产返还：
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：
        /// 资产报废：鉴定人
        /// 资产损毁：
        /// </summary>
        public virtual string ExUserName1
        {
            get { return m_ExUserName1; }
            set { m_ExUserName1 = value; }
        }

        protected string m_ExUserName2;
        /// <summary>
        /// 扩展字段用户2
        /// 资产领用：
        /// 资产维护：
        /// 资产借用：
        /// 资产返还：
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：
        /// 资产报废：审批人
        /// 资产损毁：
        /// </summary>
        protected virtual string ExUserName2
        {
            get { return m_ExUserName2; }
            set { m_ExUserName2 = value; }
        }

        protected bool m_ExBool1;
        /// <summary>
        /// 扩展字段布尔值1
        /// 资产领用：
        /// 资产维护：
        /// 资产借用：
        /// 资产返还：
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：停启用标识
        /// 资产报废：是否正常报废
        /// 资产损毁：
        /// </summary>
        public virtual bool ExBool1
        {
            get { return m_ExBool1; }
            set { m_ExBool1 = value; }
        }


        protected double m_ExDouble1;
        /// <summary>
        /// 扩展信息浮点值1
        /// 资产领用：
        /// 资产维护：
        /// 资产借用：
        /// 资产返还：
        /// 资产退仓：
        /// 资产调拨：
        /// 资产停启用：
        /// 资产报废：
        /// 资产损毁：
        /// </summary>
        public virtual double ExDouble1
        {
            get { return m_ExDouble1; }
            set { m_ExDouble1 = value; }
        }
    }
}